#ifndef _UTILS_SERVICE_HPP
#define _UTILS_SERVICE_HPP

#include "sdc.h"
#include <mutex>

class UtilsService {
public:
    ~UtilsService();
    UtilsService();
    int GetFd();
    int SDCMemAlloc(unsigned int size, sdc_mmz_alloc_s* mem_params);
    void SDCMemFree(sdc_mmz_alloc_s *pstMemParas);

    int SDCGetHardWareId(sdc_hardware_id_s *pstHardWareParas);
    int SDCFlushCache(int64_t u64PhyAddr, void *pvVirAddr, uint32_t u32Size);
private:
    int ServiceRegister();

private:
    int m_fd_utils = -1;
    unsigned int m_transId = 0;
    std::mutex m_mutex;
};


#endif //NNIE_TUTORIAL_UTILS_SERVICE_HPP